using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Gratamira.CapaNegocio;

namespace Gratamira.Presentacion
{
    public partial class frmMaeFormato : Gratamira.Presentacion.frmBaseMaestra
    {
        private Formato mFormato;
        //Adicionar variable de fuente de enlace
        private BindingSource fuenteEnlace = new BindingSource();
        
        #region Constructores
        public frmMaeFormato(string pFormatoID, estadoPantalla pModoPantalla)
        {
            InitializeComponent();
            if (pModoPantalla != estadoPantalla.Insertar)
            {
                mFormato = new Formato(pFormatoID);
            }
            else
            {
                mFormato = new Formato();
            }
            base.Estado = pModoPantalla;
            this.Text = Usuario.Empresa + " - Maestra de Formato";
        }
        #endregion

        public override void deshabilitarControles()
        {
            //No permite modificar el contenido de los controles
            txtFormatoID.Enabled = false;
            txtLargo.Enabled = false;
            txtAncho.Enabled = false;
        }

        public override void habilitarControles()
        {
            //Permite modificar el contenido de los controles
            if (base.Estado == estadoPantalla.Insertar)
            {
                txtFormatoID.Enabled = true;
            }
            txtLargo.Enabled = true;
            txtAncho.Enabled = true;
        }

        public override void unirDatosClaseForma()
        {
            fuenteEnlace.DataSource = mFormato;
            txtFormatoID.DataBindings.Add("Text", fuenteEnlace, "FormatoID");
            txtLargo.DataBindings.Add("Value", fuenteEnlace, "Largo");
            txtAncho.DataBindings.Add("Value", fuenteEnlace, "Ancho");
            lblArea.DataBindings.Add("Text", fuenteEnlace, "Area");
        }

        public override bool salvarCambios()
        {
            //Salvar nuevo registro
            // Codigo de la empresa es fijo, mientras se implementa multi empresa
            mFormato.UsuarioCreacion = Usuario.NombreUsuario;
            mFormato.UsuarioModificacion = Usuario.NombreUsuario;
            return mFormato.insertarFormato();
        }

        public override void actualizarCambios()
        {
            //Salvar cambios al registro
            mFormato.UsuarioModificacion = Usuario.NombreUsuario;
            mFormato.actualizarFormato();
        }

        public override void limpiarControles()
        {
            mFormato.FormatoID = "";
            mFormato.Largo = 0;
            mFormato.Ancho= 0;
            fuenteEnlace.ResetBindings(false);
        }

        public override bool verificarDatos()
        {
            if (utilidadesPresentacion.verificarContenido(txtFormatoID, epDatos) &&
                utilidadesPresentacion.verificarContenido(txtLargo, epDatos) &&
               utilidadesPresentacion.verificarContenido(txtAncho, epDatos))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        public override void leerDatosAuditoria(out string pUsuaCrea, out string pFechCrea, out string pUsuaModi, out string pFechModi)
        {
            pUsuaCrea = mFormato.UsuarioCreacion;
            pUsuaModi = mFormato.UsuarioModificacion;
            pFechCrea = mFormato.FechaCreacion;
            pFechModi = mFormato.FechaModificacion;
        }

        public override bool hayDatosModificados()
        {
            return mFormato.Modificada;
        }

        #region Eventos

        private void txtFormatoID_Enter(object sender, EventArgs e)
        {
            txtFormatoID.SelectAll();
        }

        private void txtLargo_Enter(object sender, EventArgs e)
        {
            txtLargo.SelectAll();
        }

        private void txtAncho_Enter(object sender, EventArgs e)
        {
            txtAncho.SelectAll();
        }
        #endregion
    }
}

